﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using sdd.subsystems.display;

// SIRP Experimental Firmware
// Null display driver (digital nirvana)
// (c) 2014 Chris Burri. MIT License applies. 
// See http://niston.wordpress.com

namespace sdd.subsystems.display
{
    public class DisplayNull : IDisplay
    {
        public io.ISerialIO Port { get; set;}

        public IDisplay IDisplay {get; set;}

        public event EventHandler<KeypadEventArgs> KeypadEvent;

        public void ActivatePiezoBuzzer(short frequencyHz, short timeMilliseconds) { }

        public void SetAutoScroll(bool isEnabled) { }

        public void ClearScreen() { }

        public void DrawFilledRectangle(byte fillColor, byte leftPos, byte topPos, byte rightPos, byte bottomPos) { }
 
        public void DrawPixel(byte xPos, byte yPos) { }

        public void DrawLine(byte startX, byte startY, byte endX, byte endY) { }

        public void DrawBar(byte top, byte left, byte height, byte maxWidth, byte percent) { }

        public void Home() { }

        public void InitializeLabel(byte labelID, byte leftPos, byte topPos, byte rightPos, byte bottomPos, JustificationVertical verticalJustification, JustificationHorizontal HorizontalJustification, short fontId, byte backgroundColor, byte charSpace) { }

        public void Reset() { }

        public void ScrollScreen(byte leftPos, byte topPos, byte rightPos, byte bottomPos, byte moveX, byte moveY) { }

        public void SetBoxSpaceMode(bool clearExistingChar) { }

        public void SetCurrentFont(short fontId) { }

        public void SetCursorCoordinate(byte xPosition, byte yPosition) { }
         
        public void SetCursorPosition(byte columnNumber, byte rowNumber) { }

        public void SetFontMetrics(byte lineMargin, byte topMargin, byte charSpace, byte lineSpace, byte scroll) { }

        public void SetLedBlinker(LedLocations location, bool enableBlinker) { }

        public void SetLedIndicators(LedLocations location, LedColors color, bool forceUpdate = false) { }

        public void UpdateLabel(byte labelID, string labelText) { }

        public void WriteText(string displayText) { }

        public void ClearTextWindow(byte windowId) { }

        public void InitializeTextWindow(byte windowId, byte left, byte top, byte right, byte bottom, short fontId, byte charSpace, byte lineSpace, byte scroll) { }

        public void SetTextWindow(byte windowId) { }
    }
}
